home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / DIALMGR.JS_ / dialmgr.js
Encoding:
Text File  |  2003-03-24  |  18.4 KB  |  763 lines

  1.  
  2. var PAGE_DIAL_READY = 40;
  3. var PAGE_DIAL_UP    = 41;
  4.  
  5. var gNextChkPt = 0;
  6.  
  7. var APP_OOBE_MODE    = 0;
  8. var APP_REG_MODE     = 2;
  9. var APP_ACT_MODE     = 5;
  10. var REMIND_REG       = 0;
  11. var REMIND_ISP       = 1;
  12. var APP_MSN_MODE     = 4;
  13.  
  14.  
  15. var L_REGSRV_Text      = "Your computer is connecting to the registration server.";
  16. var L_ACTSRV_Text      = "Your computer is connecting to the activation server.";
  17. var L_ACT_REG_SRV_Text = "Your computer is connecting to the activation and registration server.";
  18.  
  19. var L_REGCOM_Text      = "Registering Windows... ";
  20. var L_REGCOM2_Text     = "Registering your computer... ";
  21. var L_ACTCOM_Text      = "Activating Windows... ";
  22. var L_ACTREGCOM_Text   = "Activating and registering Windows... ";
  23.  
  24. var g_CustomPhoneBook   = null;
  25. var g_CustomDialingPage = null;
  26.  
  27. function SetCustomDialing(PhoneBook, DialingPage)
  28. {
  29.     g_CustomDialingPage = DialingPage;
  30.     g_CustomPhoneBook = PhoneBook;
  31. }
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. function InActivation_AppMode()
  39. {
  40.     return (APP_ACT_MODE == window.external.Directions.get_AppMode());
  41. }
  42.  
  43. function InReminderMode()
  44. {
  45.     return (APP_REG_MODE == window.external.Directions.get_AppMode() ||
  46.             APP_ACT_MODE == window.external.Directions.get_AppMode()
  47.             );
  48. }
  49.  
  50. function ShowAregDial()
  51. {
  52.     Navigate("actsetup\\aregdial.htm");
  53.     SetTimerShowIFrame(500);
  54. }
  55.  
  56. function GoToDialingPage()
  57. {
  58.     if ( APP_REG_MODE == window.external.Directions.get_AppMode() ) {
  59.         Navigate("regsetup\\rregdial.htm");
  60.  
  61.     } else if ( APP_ACT_MODE == window.external.Directions.get_AppMode() ) {
  62.         ShowIFrame('False');
  63.         window.setTimeout("ShowAregDial();",500);
  64.     } else {
  65.         DisableAllButtons();
  66.         switch (g_CurrentCKPT)
  67.         {
  68.             case CKPT_MIGDIAL:
  69.                 
  70.                 Navigate("setup\\migdial.htm");
  71.                 break;
  72.             case CKPT_REFDIAL:
  73.                 
  74.                 
  75.                 if (true == StatusObj.get_Status(REFERALDLCOMPLETED))
  76.                 {
  77.                     GoNavigate(CKPT_MIGLIST);
  78.                 }
  79.                 else
  80.                 {
  81.                     Navigate("setup\\refdial.htm");
  82.                 }
  83.                 break;
  84.             case CKPT_REGDIAL:
  85.                 
  86.                 Navigate("setup\\regdial.htm");
  87.                 break;
  88.             case CKPT_ISPDIAL:
  89.                 
  90.                 if (g_CustomDialingPage)
  91.                 {
  92.                     Navigate(g_CustomDialingPage);
  93.                 }
  94.                 else
  95.                 {
  96.                     Navigate("setup\\dialup.htm");
  97.                 }
  98.                 break;
  99.             default:
  100.                 
  101.                 break;
  102.         }
  103.     }
  104. }
  105.  
  106. function DialRdy_OutsideLineClicked( )
  107.  
  108. {
  109.     try
  110.     {
  111.         if (null == g.event)
  112.             return;
  113.     }
  114.     catch(e)
  115.     {
  116.         return;
  117.     }
  118.  
  119.     DialRdy_SetOutsideLine( );
  120. }
  121.  
  122. function DialRdy_SetOutsideLine( )
  123. {
  124.     if (true == g.radioOutsideLineYes.checked &&
  125.         "visible" == g.spnOutsideLine.style.visibility)
  126.     {
  127.         g.spnOutsideLineNumber.style.visibility = "visible";
  128.         g.edtOutsideLineNumber.style.visibility = "visible";
  129.         g.edtOutsideLineNumber.value = TapiObj.get_DialOut;
  130.         if (0 == g.edtOutsideLineNumber.value.length)
  131.         {
  132.             g.edtOutsideLineNumber.value = "9";
  133.         }
  134.     }
  135.     else
  136.     {
  137.         g.edtOutsideLineNumber.value = "";
  138.         g.spnOutsideLineNumber.style.visibility = "hidden";
  139.         g.spnOutsideLine.style.visibility = "hidden";
  140.     }
  141.  
  142. }
  143.  
  144.  
  145.  
  146.  
  147. function Dial_NextBtnHandler()
  148. {
  149.     switch (gCurrPage)
  150.     {
  151.         case PAGE_DIAL_READY:
  152.         {
  153.             if (g.DialRdy_ctrl1.style.visibility=="visible")
  154.             {
  155.                 TapiObj.set_AreaCode = g.edtAreaCode.value;
  156.                 TapiObj.set_CountryIndex = g.selCountry.selectedIndex;
  157.  
  158.                 
  159.                 if (g.PulseToneDialing.style.visibility != "hidden")
  160.                 {
  161.                     if (g.radioTouchToneYes.checked)
  162.                         TapiObj.set_PhoneSystem = 1;
  163.                     else
  164.                         TapiObj.set_PhoneSystem = 0;
  165.                 }
  166.  
  167.             }
  168.  
  169.             if ("visible" == g.spnOutsideLine.style.visibility &&
  170.                 true == g.radioOutsideLineYes.checked &&
  171.                 "visible" == g.spnOutsideLineNumber.style.visibility
  172.                 )
  173.             {
  174.               TapiObj.set_DialOut = g.edtOutsideLineNumber.value;
  175.             }
  176.  
  177.             if (window.external.CheckPhoneBook(
  178.                 (g_CustomPhoneBook == null) ? "msobe.isp" : g_CustomPhoneBook
  179.                 ))
  180.             {   
  181.                 GoToDialingPage();
  182.             }
  183.             else
  184.             {
  185.                 if (InReminderMode())
  186.                 {
  187.                     Navigate("regerror\\rpberr.htm");
  188.                 }
  189.                 else
  190.                 {
  191.  
  192.                     if (g_CurrentCKPT == CKPT_ISPDIAL)
  193.                     {
  194.                         Navigate("isperror\\isppberr.htm");
  195.                     }
  196.                     else
  197.                     {
  198.                         Navigate("error\\pberr.htm");
  199.                     }
  200.                 }
  201.             }
  202.             break;
  203.         }
  204.         case PAGE_DIAL_UP:
  205.         {
  206.             break;
  207.         }
  208.     }
  209.  
  210.  
  211. }
  212.  
  213. var g_IgnoreDialErr = true;
  214.  
  215.  
  216.  
  217. function Dial_BackBtnHandler()
  218. {
  219.     switch (gCurrPage)
  220.     {
  221.         case PAGE_DIAL_READY:
  222.         {
  223.             break;
  224.         }
  225.         case PAGE_DIAL_UP:
  226.         {
  227.             g_IgnoreDialErr = true;
  228.             ResetDialing();
  229.             GoBack();
  230.             break;
  231.         }
  232.     }
  233.  
  234. }
  235.  
  236.  
  237.  
  238.  
  239. function Dial_SkipBtnHandler()
  240. {
  241.     PopCKPT(CKPT_ISPDIAL); 
  242.     PopCKPT(CKPT_REGDIAL);
  243.  
  244.     switch (gCurrPage)
  245.     {
  246.         case PAGE_DIAL_READY:
  247.         {
  248.             GoCancel();
  249.             break;
  250.         }
  251.         case PAGE_DIAL_UP:
  252.         {
  253.             ResetDialing();
  254.             GoCancel();
  255.             break;
  256.         }
  257.     }
  258. }
  259.  
  260.  
  261.  
  262.  
  263. function DialRdy_LoadMe()
  264. {
  265.     if (InActivation_AppMode())
  266.         ShowIFrame();
  267.  
  268.     gCurrPage = PAGE_DIAL_READY;
  269.     InitFrameRef();
  270.     if (InActivation_AppMode())
  271.         CheckContrastMode();
  272.  
  273.     if (g != null)
  274.     {
  275.         g_FirstFocusElement = g.btnNext;
  276.         if (InActivation_AppMode())
  277.             window.setTimeout("DoFocus();",1000);
  278.         else
  279.             g_FirstFocusElement.focus();
  280.     }
  281.  
  282.     InitButtons();
  283.  
  284.     var fTapi = TapiObj.IsTAPIConfigured;
  285.     if (!fTapi && !g_bTapiDone)
  286.     {
  287.         g.DialRdy_ctrl1.style.visibility="visible";
  288.         if(g_CountryIdx < 0)
  289.         {
  290.             g_CountryIdx = TapiObj.get_CountryIndex;
  291.         }
  292.         g.edtAreaCode.value    = TapiObj.get_AreaCode;
  293.  
  294.         g.selCountry.selectedIndex = g_CountryIdx;
  295.  
  296.         if(1 == TapiObj.get_PhoneSystem)
  297.             g.radioTouchToneYes.checked = true; 
  298.         else
  299.             g.radioTouchToneNo.checked = true; 
  300.     }
  301.  
  302.     if (true == ApiObj.get_OOBEDebugMode)
  303.     {
  304.         g.spnOutsideLine.style.visibility = "visible";
  305.     }
  306.     DialRdy_SetOutsideLine( );
  307.  
  308.  
  309.     g.btnNext.onclick = Dial_NextBtnHandler;
  310.     g.btnSkip.onclick = Dial_SkipBtnHandler;
  311.  
  312.     if ((APP_MSN_MODE == window.external.Directions.get_AppMode()) &&
  313.         window.external.CalledFromMsn())
  314.     {
  315.         g.btnBack.style.visibility = "hidden";
  316.         g.BackBtnLocalText.style.visibility = "hidden";
  317.     }
  318. }
  319.  
  320.  
  321.  
  322.  
  323. var L_PostToOEMandMS_Text = "We'll now dial a telephone number to register your new computer with Microsoft and %1. ";
  324. var L_PostToMS_Text       = "We'll now dial a telephone number to register your new computer with Microsoft. ";
  325. var L_PostToOEM_Text      = "We'll now dial a telephone number to register your new computer with %1. ";
  326. var L_PrepToActRegOnline_Text  = "Preparing to activate and register Online";
  327.  
  328.  
  329. var L_PrepToActReg_Text   = "Windows will now dial a telephone number to activate and register Windows with Microsoft.";
  330. var L_PrepToActReg2_Text  = "Windows will now dial a telephone number to activate Windows with Microsoft and register with %1. ";
  331. var L_PrepToActReg3_Text  = "Windows will now dial a telephone number to activate and register Windows with Microsoft and register with %1. ";
  332. var L_PrepToAct_Text      = "Windows will now dial a telephone number to activate Windows with Microsoft.";
  333.  
  334. var OemNameStr = window.external.Signup.get_OEMName();
  335.  
  336. function RegDialRdy_LoadMe()
  337. {
  338.     DialRdy_LoadMe();
  339.  
  340.     if (InActivation_AppMode())
  341.     {
  342.         if (g_PostToMS)
  343.         {
  344.             g.Title_Text.innerText   = L_PrepToActRegOnline_Text;
  345.             g.RegDialReadyIntro.innerText = L_PrepToActReg_Text;
  346.         }
  347.  
  348.         
  349.         var L_RemindMeLater01_Text = " Re<u>m</u>ind me later ";
  350.         var L_AccesskeyRemindM_Text = "M";
  351.         g.btnSkip.innerHTML   = L_RemindMeLater01_Text;
  352.         g.btnSkip.accessKey   = L_AccesskeyRemindM_Text;
  353.     }
  354.  
  355.     if (!InReminderMode())
  356.     {
  357.         if (g_DoActivation)
  358.         {
  359.             if (g_PostToMS && !g_PostToOEM)
  360.                 g.RegDialReadyIntro.innerText = L_PrepToActReg_Text;
  361.             else if (!g_PostToMS && g_PostToOEM)
  362.                 g.RegDialReadyIntro.innerText = ApiObj.FormatMessage(L_PrepToActReg2_Text, OemNameStr);
  363.             else if (g_PostToMS && g_PostToOEM)
  364.                 g.RegDialReadyIntro.innerText = ApiObj.FormatMessage(L_PrepToActReg3_Text, OemNameStr);
  365.             else if (!g_PostToMS && !g_PostToOEM)
  366.                 g.RegDialReadyIntro.innerText = L_PrepToAct_Text;
  367.         }
  368.         else
  369.         {
  370.             if (g_PostToMS && g_PostToOEM)
  371.             {
  372.                 g.RegDialReadyIntro.innerText = ApiObj.FormatMessage(L_PostToOEMandMS_Text, OemNameStr);
  373.             }
  374.             else if (g_PostToMS)
  375.             {
  376.                 g.RegDialReadyIntro.innerText = L_PostToMS_Text;
  377.             }
  378.             else 
  379.             {
  380.                 g.RegDialReadyIntro.innerText = ApiObj.FormatMessage(L_PostToOEM_Text, OemNameStr);
  381.             }
  382.         }
  383.     }
  384.     else
  385.     {
  386.         GetPageTitle();
  387.         if (1 == RegisterObj.get_PostToOEM)
  388.         {
  389.             if (g_PostToOEM)
  390.             {
  391.                 if (g_PostToMS)
  392.                 {
  393.                     g.RegDialReadyIntro.innerText = ApiObj.FormatMessage(L_PostToOEMandMS_Text, OemNameStr);
  394.                 }
  395.                 else
  396.                 {
  397.                     g.RegDialReadyIntro.innerText = ApiObj.FormatMessage(L_PostToOEM_Text, OemNameStr);
  398.                 }
  399.             }
  400.         }
  401.     }
  402. }
  403.  
  404.  
  405.  
  406. var L_ConnectToOnlineAct_Text     = "Connecting to online activation";
  407. var L_ConnectToOnlineActReg_Text = "Connecting to online activation and registration";
  408. var L_ConnectToOnlineReg_Text     = "Connecting to online registration";
  409.  
  410. function RegDial_LoadMe()
  411. {
  412.     gCurrPage = PAGE_DIAL_UP;
  413.     InitFrameRef();
  414.     if (InActivation_AppMode())
  415.         CheckContrastMode();
  416.     g.btnNext.disabled = true;
  417.     if (g != null)
  418.     {
  419.         g_FirstFocusElement = g.btnBack;
  420.     }
  421.  
  422.     if (InActivation_AppMode())
  423.     {
  424.         
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.         GetPageTitle();
  432.     }
  433.  
  434.     if (!InReminderMode())
  435.     {
  436.         if (g_DoActivation)
  437.         {
  438.             if (g_PostToMS || g_PostToOEM)
  439.                 g.regdial_title.innerText = L_ConnectToOnlineActReg_Text;
  440.             else
  441.                 g.regdial_title.innerText = L_ConnectToOnlineAct_Text;
  442.         }
  443.         else
  444.         {
  445.             g.regdial_title.innerText = L_ConnectToOnlineReg_Text;
  446.         }
  447.     }
  448.  
  449.     InitButtons();
  450.  
  451.     setTimeout("DoRegistrationDial()" , 40);
  452.  
  453.     g.btnNext.onclick = Dial_NextBtnHandler;
  454.     g.btnBack.onclick = Dial_BackBtnHandler;
  455.     g.btnSkip.onclick = Dial_SkipBtnHandler;
  456.  
  457. }
  458.  
  459. function DoRegistrationDial()
  460. {
  461.     g_IgnoreDialErr = false;
  462.     window.external.DialEx(CONNECTED_REGISTRATION, "reg.isp");
  463. }
  464.  
  465.  
  466.  
  467.  
  468.  
  469. function Dialup_LoadMe()
  470. {
  471.     gCurrPage = PAGE_DIAL_UP;
  472.     InitFrameRef();
  473.     g.btnNext.disabled = true;
  474.     if (g != null)
  475.     {
  476.         g_FirstFocusElement = g.btnBack;
  477.     }
  478.  
  479.     InitButtons();
  480.  
  481.     setTimeout("DoDialExternal()" , 40);
  482.  
  483.     g.btnNext.onclick = Dial_NextBtnHandler;
  484.     g.btnBack.onclick = Dial_BackBtnHandler;
  485.     g.btnSkip.onclick = Dial_SkipBtnHandler;
  486.  
  487. }
  488.  
  489. function ResetDialing()
  490. {
  491.     g_bRedial = false;
  492.     g_LineProblem = 0;
  493.     g_bFirstServerError = true;
  494.     g_strISPFile = "";
  495.     g_IgnoreDialErr = true;
  496.     window.external.Hangup();
  497. }
  498.  
  499.  
  500. function SetDialing(strISPFile)
  501. {
  502.     g_strISPFile = strISPFile;
  503.  
  504.     g_DialCKPT = g_CurrentCKPT;
  505.  
  506.     g_ModalDialogUp = false;
  507. }
  508.  
  509.  
  510. function DoDialExternal()
  511. {
  512.     SetDialing((g_CustomPhoneBook == null) ? "msobe.isp" : g_CustomPhoneBook);
  513.  
  514.     DoDial();
  515. }
  516.  
  517.  
  518. function DoDial()
  519. {
  520.     g_IgnoreDialErr = false;
  521.     if (g_bRedial)
  522.     {
  523.         window.external.ReDialEx(CONNECTED_ISP_SIGNUP, g_strISPFile);
  524.     }
  525.     else
  526.     {
  527.         window.external.DialEx(CONNECTED_ISP_SIGNUP, g_strISPFile);
  528.     }
  529. }
  530.  
  531.  
  532. function Redial()
  533. {
  534.     DoDial();
  535. }
  536.  
  537.  
  538. <!--REQUIRED FUNCTION NAME-->
  539. function OnDialing()
  540. {
  541.     
  542.  
  543.     switch (g_CurrentCKPT)
  544.     {
  545.         case CKPT_REGDIAL:
  546.             if (g != null && g.spnISPName != null)
  547.             {
  548.                 if (InActivation_AppMode())
  549.                 {
  550.                     if (g_PostToMS)
  551.                         g.spnISPName.innerText = L_ACT_REG_SRV_Text;
  552.                     else
  553.                         g.spnISPName.innerText = L_ACTSRV_Text;
  554.                 }
  555.                 else
  556.                 if (!InReminderMode())
  557.                 {
  558.                     if (g_DoActivation)
  559.                     {
  560.                         if (g_PostToMS || g_PostToOEM)
  561.                             g.spnISPName.innerText = L_ACT_REG_SRV_Text;
  562.                         else
  563.                             g.spnISPName.innerText = L_ACTSRV_Text;
  564.                     }
  565.                     else
  566.                     {
  567.                         g.spnISPName.innerText = L_REGSRV_Text;
  568.                     }
  569.                 }
  570.                 else
  571.                 {
  572.                     g.spnISPName.innerText = L_REGSRV_Text;
  573.                 }
  574.             }
  575.             if (g != null && g.spnDialing != null)
  576.             {
  577.                 g.spnDialing.innerText = window.external.get_DialNumber;
  578.             }
  579.             break;
  580.     }
  581.  
  582. }
  583.  
  584. <!--REQUIRED FUNCTION NAME-->
  585. function OnConnecting()
  586. {
  587.     
  588.  
  589.     switch (g_CurrentCKPT)
  590.     {
  591.         case CKPT_REGDIAL:
  592.             if (g != null && g.spnRegDialStatus != null)
  593.             {
  594.                 if (InActivation_AppMode())
  595.                 {
  596.                     if (g_PostToMS)
  597.                         g.spnRegDialStatus.innerText = L_ACTREGCOM_Text;
  598.                     else
  599.                         g.spnRegDialStatus.innerText = L_ACTCOM_Text;
  600.                     g_AfterConnectionDone = true;
  601.                 }
  602.                 else
  603.                 if (!InReminderMode())
  604.                 {
  605.                     if (g_DoActivation)
  606.                     {
  607.                         if (g_PostToMS || g_PostToOEM)
  608.                             g.spnRegDialStatus.innerText = L_ACTREGCOM_Text;
  609.                         else
  610.                             g.spnRegDialStatus.innerText = L_ACTCOM_Text;
  611.                     }
  612.                     else
  613.                     {
  614.                         g.spnRegDialStatus.innerText = L_REGCOM2_Text;
  615.                     }
  616.                 }
  617.                 else
  618.                 {
  619.                     g.spnRegDialStatus.innerText = L_REGCOM_Text;
  620.                 }
  621.             }
  622.             break;
  623.     }
  624. }
  625.  
  626. <!--REQUIRED FUNCTION NAME-->
  627. function OnConnected()
  628. {
  629.     
  630.  
  631.     g_bTapiDone = true;
  632.  
  633.     switch (g_CurrentCKPT)
  634.     {
  635.     case CKPT_REGDIAL:
  636.         if ( g_DoActivation )
  637.         {
  638.             window.external.AsyncActivate( g_PostToMS );
  639.             return;
  640.         }
  641.         else if (g_PostToMS)
  642.         {
  643.             window.external.PostRegData(POST_TO_MS);
  644.             StatusObj.set_Status(MS_REGISTRATION, true);
  645.         }
  646.  
  647.         ActivationComplete( );
  648.         break;
  649.     }
  650. }
  651.  
  652. <!--REQUIRED FUNCTION NAME-->
  653. function OnDownloading()
  654. {
  655. }
  656.  
  657. <!--REQUIRED FUNCTION NAME-->
  658. function OnDisconnect()
  659. {
  660.  
  661. }
  662.  
  663. <!--REQUIRED FUNCTION NAME-->
  664. function OnDialingError(derr)
  665. {
  666.     window.external.Hangup();
  667.  
  668.     if (g_IgnoreDialErr)
  669.         return;
  670.  
  671.  
  672.     
  673.     if (InReminderMode())
  674.     {
  675.         g_AfterConnectionDone = false;
  676.         switch (derr)
  677.         {
  678.          case DERR_PORT_OR_DEVICE:
  679.          case DERR_PORT_ALREADY_OPEN:
  680.          case DERR_HARDWARE_FAILURE:
  681.          case DERR_DIALTONE:
  682.             Navigate("regerror\\rdtone.htm");
  683.             break;
  684.  
  685.          case DERR_BUSY:
  686.             Navigate("regerror\\rtoobusy.htm");
  687.             break;
  688.  
  689.          case DERR_VOICEANSWER:
  690.          case DERR_PPP_TIMEOUT:
  691.             Navigate("regerror\\rhndshk.htm");
  692.             break;
  693.  
  694.          case DERR_NO_CARRIER:
  695.             Navigate("regerror\\rpulse.htm");
  696.             break;
  697.  
  698.          case DERR_REMOTE_DISCONNECT:
  699.             Navigate("regerror\\rcnterr.htm");
  700.             break;
  701.  
  702.          case DERR_NOANSWER:
  703.             Navigate("regerror\\rnoansw.htm");
  704.             break;
  705.  
  706.          default:
  707.             Navigate("regerror\\rhndshk.htm");
  708.             break;
  709.         }
  710.     }
  711.     else
  712.     {
  713.  
  714.         switch (derr)
  715.         {
  716.          case DERR_PORT_OR_DEVICE:
  717.          case DERR_PORT_ALREADY_OPEN:
  718.          case DERR_HARDWARE_FAILURE:
  719.          case DERR_DIALTONE:
  720.             Navigate("error\\dialtone.htm");
  721.             break;
  722.  
  723.          case DERR_BUSY:
  724.             Navigate("error\\toobusy.htm");
  725.             break;
  726.  
  727.          case DERR_VOICEANSWER:
  728.          case DERR_PPP_TIMEOUT:
  729.             Navigate("error\\hndshake.htm");
  730.             break;
  731.  
  732.          case DERR_NO_CARRIER:
  733.             Navigate("error\\pulse.htm");
  734.             break;
  735.  
  736.          case DERR_REMOTE_DISCONNECT:
  737.             Navigate("error\\cnncterr.htm");
  738.             break;
  739.  
  740.          case DERR_NOANSWER:
  741.             Navigate("error\\noanswer.htm");
  742.             break;
  743.  
  744.          default:
  745.             Navigate("error\\hndshake.htm");
  746.             break;
  747.         }
  748.     }
  749.  
  750. }
  751.  
  752. <!--REQUIRED FUNCTION NAME -->
  753. function OnServerError(derr)
  754. {
  755.     window.external.Hangup();
  756.  
  757.     if (g_IgnoreDialErr)
  758.         return;
  759.  
  760.     Navigate("error\\isp2busy.htm");
  761. }
  762.  
  763.